package com.oldbook.manage.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.oldbook.common.annotation.Excel;
import com.oldbook.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;


/**
 * 学分申请对象 tb_credit_apply
 *
 * @author Exiaoke
 * @date 2025-02-18
 */
@ApiModel(description = "学分申请对象")
@Data // Lombok annotation to generate all the boilerplate that is normally required for POJOs.
@NoArgsConstructor // Generates a constructor with no parameters.
@AllArgsConstructor // Generates a constructor with 1 parameter for each field in the class.
public class CreditApply extends BaseEntity
        {
private static final long serialVersionUID = 1L;

    /**
     * 申请ID（主键）
     */
    @ApiModelProperty(value = "申请ID（主键）", name = "applyId", example = "", required = true)
    private Long applyId;

    /**
     * 学生ID（外键，关联 tb_student_info.student_id）
     */
            @Excel(name = "学生ID", readConverterExp = "外=键，关联,t=b_student_info.student_id")
    @ApiModelProperty(value = "学生ID（外键，关联 tb_student_info.student_id）", name = "studentId", example = "", required = true)
    private String studentId;

    /**
     * 教材名称
     */
            @Excel(name = "教材名称")
    @ApiModelProperty(value = "教材名称", name = "textbookName", example = "", required = true)
    private String textbookName;

    /**
     * ISBN
     */
            @Excel(name = "ISBN")
    @ApiModelProperty(value = "ISBN", name = "isbn", example = "", required = true)
    private String isbn;

    /**
     * 作者
     */
            @Excel(name = "作者")
    @ApiModelProperty(value = "作者", name = "author", example = "", required = true)
    private String author;

    /**
     * 出版社
     */
            @Excel(name = "出版社")
    @ApiModelProperty(value = "出版社", name = "publisher", example = "", required = true)
    private String publisher;

    /**
     * 提交日期
     */
            @JsonFormat(pattern = "yyyy-MM-dd")
            @Excel(name = "提交日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "提交日期", name = "submitDate", example = "", required = true)
    private Date submitDate;

    /**
     * 审核状态（0-待审核，1-通过，2-拒绝）
     */
            @Excel(name = "审核状态", readConverterExp = "0=-待审核，1-通过，2-拒绝")
    @ApiModelProperty(value = "审核状态（0-待审核，1-通过，2-拒绝）", name = "status", example = "", required = true)
    private String status;

    /**
     * 审核人（关联 sys_user.user_name）
     */
            @Excel(name = "审核人", readConverterExp = "关=联,s=ys_user.user_name")
    @ApiModelProperty(value = "审核人（关联 sys_user.user_name）", name = "auditBy", example = "", required = true)
    private String auditBy;

    /**
     * 审核时间
     */
            @JsonFormat(pattern = "yyyy-MM-dd")
            @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "审核时间", name = "auditTime", example = "", required = true)
    private Date auditTime;

    /**
     * 获得积分（审核通过后填写）
     */
            @Excel(name = "获得积分", readConverterExp = "审=核通过后填写")
    @ApiModelProperty(value = "获得积分（审核通过后填写）", name = "creditEarned", example = "", required = true)
    private float creditEarned;

    /**
     * 备注（审核意见等）
     */
            @Excel(name = "备注", readConverterExp = "审=核意见等")
    @ApiModelProperty(value = "备注（审核意见等）", name = "remarks", example = "", required = true)
    private String remarks;


        }